package org.jai.search.config;
import org.apache.commons.lang.LocaleUtils;
import java.util.Locale;
public enum ElasticSearchIndexConfig
{
COM_WEBSITE("com", IndexDocumentType.PRODUCT.getText(), SupportedLocale.ENGLISH),
NL_WEBSITE("nl", IndexDocumentType.PRODUCT.getText(), SupportedLocale.DUTCH);
private String indexName;
private String documentType;
private SupportedLocale supportedLocale;
private ElasticSearchIndexConfig(final String indexName, final String documentType, final SupportedLocale supportedLocale)
{
this.indexName = indexName;
this.documentType = documentType;
this.supportedLocale = supportedLocale;
}
public String getIndexAliasName()
{
return indexName;
}
public String getDocumentType()
{
return documentType;
}
public SupportedLocale getSupportedLocale()
{
return supportedLocale;
}
public static enum SupportedLocale
{
ENGLISH("en_EN", "English"),
DUTCH("nl_NL", "Dutch");
private String text;
private String lang;
private SupportedLocale(final String text, final String lang)
{
this.text = text;
}
public String getText()
{
return text;
}
public String getLang()
{
return lang;
}
}
public Locale getLocale()
{
return LocaleUtils.toLocale(supportedLocale.getText());
}
public String getGroupDocumentType()
{
switch (this)
{
case COM_WEBSITE:
case NL_WEBSITE:
return IndexDocumentType.PRODUCT_GROUP.getText();
default:
break;
}
return null;
}
public String getPropertiesDocumentType()
{
switch (this)
{
case COM_WEBSITE:
case NL_WEBSITE:
return IndexDocumentType.PRODUCT_PROPERTY.getText();
default:
break;
}
return null;
}
public String getSnowballCustomFilterName()
{
return "jai_filter_snowball_" + getSupportedLocale().getText();
}
public String getStopwordsCustomFilterName()
{
return "jai_filter_stopword_" + getSupportedLocale().getText();
}
public String getWorddelimiterCustomFilterName()
{
return "jai_filter_worddelimiter_" + getSupportedLocale().getText();
}
public String getSynonymsCustomFilterName()
{
return "jai_filter_synonyms_" + getSupportedLocale().getText();
}
public String getCustomFreeTextAnalyzerName()
{
return "jai_analyzer_custom_freetext_" + getSupportedLocale().getText();
}
public String getCustomFacetAnalyzerName()
{
return "jai_analyzer_custom_facet_" + getSupportedLocale().getText();
}
public String getAutoSuggestionAnalyzerName()
{
return "jai_analyzer_autosuggestion_" + getSupportedLocale().getText();
}
public String getShingleTokenFilterName()
{
return "jai_shingle_token_filter" + getSupportedLocale().getText();
}
public String getNGramTokenFilterName()
{
return "jai_ngram_token_filter" + getSupportedLocale().getText();
}
public String getStandardTextAnalyzerName()
{
return "jai_analyzer_standard_freetext_" + getSupportedLocale().getText();
}
}